package veterinaria.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collection;

import veterinaria.excepcion.DAOExcepcion;

import veterinaria.modelo.Comprobante;

import veterinaria.util.ConexionDB;

public class ComprobanteDAO extends BaseDAO{

	 public Comprobante insertar(Comprobante vo) throws DAOExcepcion {
         
         String query = "insert into comprobante(idCita,fecha,descripcion,monto,igv,total) values (?,?,?,?,?,?)";
         Connection con = null;
         PreparedStatement stmt = null;
         ResultSet rs = null;
         try {
                 con = ConexionDB.obtenerConexion();
                 stmt = con.prepareStatement(query);
                 
                 stmt.setInt(1, vo.getIdCita());
                 stmt.setString(2, vo.getFecha());                 
                 stmt.setString(3, vo.getDescripcion());
                 stmt.setDouble(4, vo.getPrecio());
                 stmt.setDouble(5, vo.getIgv());                 
                 stmt.setDouble(6, vo.getTotal());
                 
                 int i = stmt.executeUpdate();
                 if (i != 1) {
                         throw new SQLException("No se pudo insertar");
                 }
         } catch (SQLException e) {
                 System.err.println(e.getMessage());
                 throw new DAOExcepcion(e.getMessage());
         } finally {
                 this.cerrarResultSet(rs);
                 this.cerrarStatement(stmt);
                 this.cerrarConexion(con);
         }
         return vo;
 }
	 
	 public Collection<Comprobante> buscarPorFecha(String fechaAtencion, String Hora)
			 throws DAOExcepcion {			
			String query = "select idComprobante,idCita,fecha,hora,ruc,nomCliente,direccion,nomPaciente,monto,igv,total from comprobante where fecha=? and hora=?";
			Collection<Comprobante> lista = new ArrayList<Comprobante>();
			Connection con = null;
			PreparedStatement stmt = null;
			ResultSet rs = null;
			try {
				con = ConexionDB.obtenerConexion();
				stmt = con.prepareStatement(query);
				stmt.setString(1, fechaAtencion);
				stmt.setString(2, Hora);
				rs = stmt.executeQuery();
				while (rs.next()) {
					Comprobante co = new Comprobante();
					co.setIdComprobante(rs.getInt("idComprobante"));
					co.setIdCita(rs.getInt("idCita"));					
					co.setFecha(rs.getString("fecha"));					
					co.setDescripcion(rs.getString("direccion"));
					co.setPrecio(rs.getDouble("nomPaciente"));
					co.setIgv(rs.getDouble("monto"));
					co.setTotal(rs.getDouble("igv"));
										
					lista.add(co);
				}
			} catch (SQLException e) {
				System.err.println(e.getMessage());
				throw new DAOExcepcion(e.getMessage());
			} finally {
				this.cerrarResultSet(rs);
				this.cerrarStatement(stmt);
				this.cerrarConexion(con);
			}			
			return lista;
		}    
}
